package com.huike.stock_analysis.service;


import java.text.DecimalFormat;
import java.util.List;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.huike.stock_analysis.dao.RiskDao;

import com.huike.stock_analysis.entity.RiskInfo;

/**
 * 
 * @author mzLEI
 * @date 2020年7月2日
 */
@Service
public class RiskService {
	//注入dao
	@Autowired
	private RiskDao riskDao;
	
	private List<RiskInfo> riskInfos;
	
	private DecimalFormat df = new DecimalFormat("0.0000");
	
	private void setList(String code) {
	
			riskInfos = riskDao.queryRisk(code);
		
	}
	
	/**
	 * 
	 * @param code
	 * @return Map<String, Double> 返回的数据 k为日期 v为对应的数据
	 *  查询历史波动率
	 */
	/*
	public Map<String, Double> historyRatio(String code) {
		//创建返回map
		Map<String, Double> map = new LinkedHashMap<>();
		
		//查询数据库
		riskInfos = riskDao.queryRisk(code);
		
		//遍历查询结果 找到营业利润率
		for(RiskInfo riskInfo : riskInfos) {
			//System.out.print(profitInfo.getDate());
			map.put(riskInfo.getDate().toString(), riskInfo.getHistoryRatio());
		}
		return map;
	}
	*/
	/**
	 * 
	 * @param code
	 * @return Map<String, Double> 返回的数据 k为日期 v为对应的数据
	 *  成交量
	 */
	/*
	public Map<String, Double> Vol20() {
		//创建返回map
		Map<String, Double> map = new LinkedHashMap<>();
		
		
		//遍历查询结果 找到营业利润率
		for(RiskInfo riskInfo : riskInfos) {
			//System.out.print(profitInfo.getDate());
			map.put(riskInfo.getDate().toString(), riskInfo.getHistoryRatio());
		}
		return map;
	}
	
	*/
	/**
	 * 
	 * @param 
	 * @return String 最近的一个数据
	 * z值
	 */
	public String zTest(String code) {
		//获取最近一个
		//查询数据库
		setList(code);
		riskInfos = riskDao.queryRisk(code);
		RiskInfo riskInfo = riskInfos.get(riskInfos.size() - 1);
		
		return df.format(riskInfo.getzTest());
	}
	
	/**
	 * 
	 * @param 
	 * @return String 最近的一个数据
	 * 应收账款占比
	 */
	public String accountsReceivable(String code) {
		//获取最近一个
		setList(code);
		RiskInfo riskInfo = riskInfos.get(riskInfos.size() - 1);
		
		return df.format(riskInfo.getAccountRatio());
	}
	
	/**
	 * 
	 * @param 
	 * @return String 最近的一个数据
	 * 市盈率
	 */
	public String pe(String code) {
		//获取最近一个
		setList(code);
		RiskInfo riskInfo = riskInfos.get(riskInfos.size() - 1);
		
		return df.format(riskInfo.getPe());
	}
	
	/**
	 * 
	 * @param 
	 * @return String 最近的一个数据
	 * 市净率
	 */
	public String pb(String code) {
		//获取最近一个
		setList(code);
		RiskInfo riskInfo = riskInfos.get(riskInfos.size() - 1);
		
		return df.format(riskInfo.getPb());
	}
}
